import { axios} from '@/utils/request'
import { parseStrEmpty } from "@/utils/index";

/**
 * 查询系统用户列表
 * @param query
 * @returns {*}
 */
export function pageUser(query) {
  return axios({
    url: '/system/user/page',
    method: 'get',
    params: query
  })
}

/**
 * 查询系统用户列表，用于流程里的用户选择
 * @param query
 * @returns {*}
 */
export function selectUser(query) {
  return axios({
    url: '/system/user/selectUser',
    method: 'get',
    params: query
  })
}

/**
 * 根据部门编号获取系统用户列表,作为部门编辑负责人时使用
 * @returns {*}
 */
export function selectUserForDept() {
  return axios({
    url: '/system/user/listForDept',
    method: 'get'
  })
}

/**
 * 查询系统用户详细
 * @param userId
 * @returns {*}
 */
export function getUser(userId) {
  return axios({
    url: '/system/user/' + parseStrEmpty(userId),
    method: 'get'
  })
}

/**
 * 新增系统用户
 * @param data
 * @returns {*}
 */
export function addUser(data) {
  return axios({
    url: '/system/user',
    method: 'post',
    data: data
  })
}

/**
 * 修改系统用户
 * @param data
 * @returns {*}
 */
export function updateUser(data) {
  return axios({
    url: '/system/user',
    method: 'put',
    data: data
  })
}

/**
 * 删除系统用户
 * @param userId
 * @returns {*}
 */
export function delUser(userId) {
  return axios({
    url: '/system/user/' + userId,
    method: 'delete'
  })
}

/**
 * 系统用户密码重置
 * @param userId
 * @param password
 * @returns {*}
 */
export function resetUserPwd(userId, password) {
  const data = {
    userId,
    password
  }
  return axios({
    url: '/system/user/resetPwd',
    method: 'put',
    data: data
  })
}

/**
 * 系统用户状态修改
 * @param userId
 * @param status
 * @returns {*}
 */
export function changeUserStatus(userId, status) {
  const data = {
    userId,
    status
  }
  return axios({
    url: '/system/user/changeStatus',
    method: 'put',
    data: data
  })
}

/**
 * 查询系统用户个人信息
 * @returns {*}
 */
export function getUserProfile() {
  return axios({
    url: '/system/user/profile',
    method: 'get'
  })
}

/**
 * 修改系统用户个人信息
 * @param data
 * @returns {*}
 */
export function updateUserProfile(data) {
  return axios({
    url: '/system/user/profile',
    method: 'put',
    data: data
  })
}

/**
 * 系统用户密码重置
 * @param oldPassword
 * @param newPassword
 * @returns {*}
 */
export function updateUserPwd(oldPassword, newPassword) {
  const data = {
    oldPassword,
    newPassword
  }
  return axios({
    url: '/system/user/profile/updatePwd',
    method: 'put',
    params: data
  })
}

/**
 * 系统用户头像上传
 * @param data
 * @returns {*}
 */
export function uploadAvatar(data) {
  return axios({
    url: '/system/user/profile/avatar',
    method: 'post',
    data: data
  })
}

/**
 * 查询授权系统角色
 * @param userId
 * @returns {*}
 */
export function getAuthRole(userId) {
  return axios({
    url: '/system/user/authRole/' + userId,
    method: 'get'
  })
}

/**
 * 保存授权系统角色
 * @param data
 * @returns {*}
 */
export function updateAuthRole(data) {
  return axios({
    url: '/system/user/authRole',
    method: 'put',
    params: data
  })
}

/**
 * 查询系统部门下拉树结构
 * @returns {*}
 */
export function deptTreeSelect() {
  return axios({
    url: '/system/user/deptTree',
    method: 'get'
  })
}

/**
 * 获取系统用户下拉数据
 * @returns {*}
 */
export function userSelect() {
  return axios({
    url: '/system/user/select',
    method: 'get'
  })
}

/**
 * 获取系统用户和客户端用户下拉数据
 * @returns {*}
 */
export function userAllSelect() {
  return axios({
    url: '/system/user/allSelect',
    method: 'get'
  })
}

